﻿/*****************************************************************//**
 * @file    FITKOCCAIS_ColoredShape.h
 * @brief   Subclass of AIS_ColoredShape, which can save user information.
 *  
 * @author  ChengHaotian (yeguangbaozi@foxmail.com)
 * @date    2024-08-02
 *********************************************************************/

#ifndef __FITKOCCAIS_COLOREDSHAPE_H__
#define __FITKOCCAIS_COLOREDSHAPE_H__

#include <AIS_ColoredShape.hxx>
#include "FITKAIS_ObjectBase.h"

// Forward declaration
class TopoDS_Shape;


class FITKOCCAIS_ColoredShape;;
DEFINE_STANDARD_HANDLE(FITKOCCAIS_ColoredShape, AIS_ColoredShape);

/**
 * @brief   Subclass of AIS_ColoredShape, which can save user information.
 * @author  ChengHaotian (yeguangbaozi@foxmail.com)
 * @date    2024-08-02
 */
class FITKOCCAIS_ColoredShape : public AIS_ColoredShape, public FITKAIS_ObjectBase
{
public:
    /**
     * @brief   Copy constructor.
     * @param   theShape: The TopoDS_Shape data
     * @author  ChengHaotian (yeguangbaozi@foxmail.com)
     * @date    2024-08-02
     */
    FITKOCCAIS_ColoredShape(const TopoDS_Shape& theShape);

    /**
     * @brief   Copy constructor.
     * @param   theShape: The shape interactive object
     * @author  ChengHaotian (yeguangbaozi@foxmail.com)
     * @date    2024-08-02
     */
    FITKOCCAIS_ColoredShape(const Handle(FITKOCCAIS_ColoredShape)& theShape);

    /**
     * @brief   Destructor.[virtual]
     * @author  ChengHaotian (yeguangbaozi@foxmail.com)
     * @date    2024-08-31
     */
    virtual ~FITKOCCAIS_ColoredShape() = default;
};

#endif // __FITKOCCAIS_COLOREDSHAPE_H__
